export default {
	// 用户名正则
	isUserName(userName) {
		let regex = /^[a-zA-Z0-9_-]{4,16}$/;
		return regex.test(userName)
	},
	// Email
	isEmail(email) {
		let regex = /^([a-zA-Z0-9]+[_|\_|\.]?)*[a-zA-Z0-9]+@([a-zA-Z0-9]+[_|\_|\.]?)*[a-zA-Z0-9]+\.[a-zA-Z]{2,3}$/;
		return regex.test(email)
	},
	// 手机号
	isPhone(phone) {
		let regex = /^1[345789]\d{9}$/;
		return regex.test(phone)
	},
	// 身份证号(18位)
	isIDCard(idCard) {
		let regex = /^[1-9]\d{5}(18|19|([23]\d))\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$/;
		return regex.test(idCard)
	},
	// URL
	isURL(url) {
		let regex = /^((https?|ftp|file):\/\/)?([\da-z\.-]+)\.([a-z\.]{2,6})([\/\w \.-]*)*\/?$/;
		return regex.test(url)
	},
	// 密码强度
	passwordStrength(password) {
		let regex = /^.*(?=.{8,})(?=.*\d)(?=.*[A-Z])(?=.*[a-z])(?=.*[!@#$%^&*? ]).*$/;
		return regex.test(password)
	},
	// 密码(8-16 数字且字母)
	isPassword(password) {
		let regex = /^(?=.*?[a-zA-Z])(?=.*?[0-9])[a-zA-Z0-9]{8,16}$/;
		return regex.test(password)
	},
	// 密码(8-16 数字或字母)
	isPurePassword(password) {
		let regex = /^[a-zA-Z0-9]{8,16}$/;
		return regex.test(password)
	},

	// 密码(8-16 字母字符)包括一些特殊符号
	isChatPassword(password) {
		let regex = /^[a-z0-9@#￥$%^&*_\-+*/!.,~`:;]{8,16}$/;
		return regex.test(password)
	},

	// 判断是否包含特殊符号
	chackSymbol(str) {
		let regex = new RegExp("[`~!@#$^&*()=|{}':;',\\[\\].<>《》/?~！@#￥……&*（）——|{}【】‘；：”“'。，、？ ]");
		return regex.test(str)
	},

	// 全是中文
	isCn(str) {
		let regex = /^[\u4E00-\u9FA5\u3002|\uff1f|\uff01|\uff0c|\u3001|\uff1b|\uff1a|\u201c|\u201d|\u2018|\u2019|\uff08|\uff09|\u300a|\u300b|\u3008|\u3009|\u3010|\u3011|\u300e|\u300f|\u300c|\u300d|\ufe43|\ufe44|\u3014|\u3015|\u2026|\u2014|\uff5e|\ufe4f|\uffe5 ]+$/;
		return regex.test(str)
	},
	// 判断输入字符串是否为空或者全部都是空格
	isNull(str) {
		if (!str) return true;
		if (str === "") return true;
		let regex = "^[ ]+$";
		return regex.test(str);
	},
	//判断空对象
	isEmptyObject(obj) {
		for (let key in obj) {
			return false;
		}
		return true;
	},
	// 判断是否是xml
	isXml(str) {
		if (str.indexOf('<?text') !== -1) {
			return true
		} else {
			return false
		}
	},

	// ***********************************数字类正则
	// 自然数
	isNumber(number) {
		if (this.isNull(number)) {
			return false
		}
		let regex = /^[0-9]*$/;
		return regex.test(number)
	},
	// 判断是否是金额
	isMoney(val) {
		let reg = /((^[1-9]\d*)|^0)(\.\d{0,2}){0,1}$/;
		return regex.test(val)
	},
	// 正整数
	isPositiveInteger(val) {
		let regex = /^[1-9]\d*$/;
		return regex.test(val)
	},
	// 整数
	isInteger(val) {
		let regex = /^-?[1-9]\d*$/;
		return regex.test(val)
	},
	//非空非零开头的正整数，包括小数点，最多保留2位小数点
	isNotNullPositiveInteger(val) {
		let regex = /^(?!(0[0-9]{0,}$))[0-9]{1,}[.]{0,}[0-9]{0,2}$/;
		return regex.test(val)
	},
	//非空的正整数，包括小数点，最多保留2位小数点
	isNotNullPositiveInteger(val) {
		let regex = /^[0-9]+(.[0-9]{0,2})?$/;
		return regex.test(val)
	}
}
